<template>
    <!-- 因为max值在父组件中是通过异步请求得到的，我们不知道什么时候能拿到这个max值，但是在一段时间后总归是有一个max值， -->
    <!-- 我们可以用 watch 属性监听，来监听父组件传递过来的 max 值，不管 watch 会被触发几次，但是最后一次肯定会是一个合法的max数值 -->
    <div class="mui-numbox" data-numbox-min="1" :data-numbox-max="max">
        <button class="mui-btn mui-btn-numbox-minus" type="button">-</button>
        <input id="test" class="mui-input-numbox" type="number" value="1" @change="countChanged" ref="numbox">
        <button class="mui-btn mui-btn-numbox-plus" type="button">+</button>
    </div>

        <!-- 分析：子组件什么时候把数据传递给父组件 -->

</template>


<script>
import mui from '../../lib/mui/js/mui.min.js';
export default {
    mounted(){
        // 初始化数字选择框组件
        mui(".mui-numbox").numbox();
        console.log(this.max);
    },
    methods:{
        countChanged(){
            // 每当文本框的数据被修改的时候，立即把最新的数据，通过事件调用传递给父组件
            // 通过给数字框添加一个ref属性，我们就可以使用 this.$refs 来获取这个元素，进而取到数值
            // console.log(this.$refs.numbox.value);
            // console.log(this.$refs);
            this.$emit("getcount",parseInt(this.$refs.numbox.value));
        }
    },
    props:["max"],
    watch:{
        //属性监听
        max:function (newVal,oldVal) {
            // 通过jsAPI来设置数字框的最大值
            mui(".mui-numbox").numbox.setOption('max',newVal);
        }
    }
}
</script>



<style lang="scss" scoped>

</style>
